package jmine.tec.hydra.send;

import java.util.List;

import jmine.tec.hydra.api.HydraMessage;

/**
 * Executa o envio de um objeto de acordo com uma especificação.
 * 
 * @author piercio
 */
public interface SenderExecutor {

    /**
     * Envia mensagens de acordo com a ação passada. Lança HydraException caso ocorra algum erro durante o envio.
     * 
     * @param source o conteudo da mensagem.
     * @param activation a ativação que irá gerar a ação de integração a partir do conteudo (source) passado.
     * @return uma lista de todas as mensagens enviadas.
     */
    List<HydraMessage> send(Object source, String activation);
}